#ifndef CAMERAINTERFACEBASE_H
#define CAMERAINTERFACEBASE_H

class CameraInterface {
public:
	CameraInterface() { };
	~CameraInterface() { };
	//virtual int probeCam();
	virtual int probeCam(unsigned long manualIPaddress = (130 << 24) | (123 << 16) | (248 << 8) | (16) ) { return 0;}
	virtual bool initCam() { return false; }
	virtual bool openCam(unsigned long camId) {return false;}
	virtual bool getCamProperties(unsigned long propId, unsigned long &value) { return false;}
	virtual bool setCamProperties(unsigned long propId, unsigned long value) {return false;}
	virtual bool getCamProperties(unsigned long propId, double &value) {return false;}
	virtual bool setCamProperties(unsigned long propId, double value) {return false;}
	virtual bool getCamProperties(char *propId, unsigned long &value) {return false;}
	virtual bool setCamProperties(char *propId, unsigned long value) {return false;}
	virtual bool getCamId(int index, unsigned long &camId, std::string *camName = NULL) {return false;}
	virtual	bool setImageSize(unsigned int width = 640, unsigned int height = 480, unsigned int bytesPerChannel = 1, unsigned int channels = 3) {return false;}
	virtual IplImage* grabRawImage() {return NULL;}
	virtual bool closeCam() {return false;}
	bool interacedCapture;
	bool verbose;
protected:
	bool initialised;
	bool opened;
	IplImage*   rawImage;// = NULL;
private:

};

#endif